﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using AulaVirtualService.Persistencia;
using AulaVirtualService.Dominio;


namespace AulaVirtualService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "CursoAvService" in code, svc and config file together.
    public class CursoAvService : ICursoAvService
    {
        private CursoDAO Curso = null;
        private CursoDAO CursoDAO
        {
            get
            {
                if (this.Curso == null)
                {
                    this.Curso = new CursoDAO();
                }
                return this.Curso;
            }
        }

        public Dominio.Curso obtenerCurso(int id)
        {
            Curso curso = CursoDAO.Obtener(id);
            return curso;

        }

        public Curso crearCurso(string Nombre, string tipo, int duracionHoras, string preRequisito)
        {
            Curso cursoCrear = new AulaVirtualService.Dominio.Curso()
            {
                nombre = Nombre,
                tipo = tipo,
                duracionHoras = duracionHoras,
                preRequisito = preRequisito
            };

            return this.CursoDAO.Crear(cursoCrear);
        }

        public Dominio.Curso modificarCurso(int id, string nombre, string tipo, int duracionHoras, string preRequisito)
        {
            Dominio.Curso curso = this.obtenerCurso(id);
            if (curso != null)
            {
                curso.nombre = nombre;
                curso.tipo = tipo;
                curso.duracionHoras = duracionHoras;
                curso.preRequisito = preRequisito;
                curso = this.CursoDAO.Crear(curso);
            }
            return curso;

        }

        public void eliminarCurso(int id)
        {
            Dominio.Curso curso = CursoDAO.Obtener(id);
            this.CursoDAO.Eliminar(curso);
        }

        public List<Curso> listarCursos()
        {
            return CursoDAO.ListarTodos().ToList();
        }












    }
}
